
#ifndef CENTRANCE_HTTP_SERVER_H_
#define CENTRANCE_HTTP_SERVER_H_

#include "CNetworkServiceHeader.h"
/**************************************************************************
Date: 2021-12-02
Description: HTTP
门禁HTTP 服务器实现
**************************************************************************/

NETWORKSERVICE_BEGIN_NAMESPACE

class NETWORKSERVICE_API CEntranceHttpServer
{
public:
	/**
	 * 构造函数
	 *
	 * @note
	 * @return -
	 */
	CEntranceHttpServer();

	/**
	 * 析构函数
	 *
	 * @note
	 * @return -
	 */
	~CEntranceHttpServer();
	/**
	*发送数据
	*
	* @note
	* @param[in] onlyId 连接唯一ID
	* @param[in] head/heads 发送头
	* @param[in] bodyData 发送body
	* @param[in] path 需要展示目录
	*
	* @return - 发送状态
	*/
	bool sendData(unsigned long onlyId, MAP_PARAMS &head, string &bodyData);
	bool sendData(unsigned long onlyId,string &heads, string &bodyData);
	bool sendData(unsigned long onlyId,struct mg_http_serve_opts sopts, struct mg_http_message *hm);

public:

	/**
	 * 启动服务器
	 *
	 * @note
	 * @return -
	 */
	void startServer(string url);

	/**
	 * 停止服务器
	 *
	 * @note
	 * @return -
	 */
	void stopServer();

public:

	// 添加监听命令
	void addCmd(string cmd);

public:

	// 数据处理
	bool __dataHandle(struct mg_connection *,struct mg_http_message *hm);

	// 登录处理
	bool __loginHander(struct mg_connection *c, struct mg_http_message *hm);

	// 文件上传处理
	void __uploadHander(struct mg_connection *c, string savePath);

	// web访问文件处理
	void __dirHander(struct mg_connection *c, struct mg_http_message *hm);

	// web处理
	void __wegHandle(struct mg_connection *c, struct mg_http_message *hm);


private:

private:
	// HTTP服务器
	CHttpService m_HttpServer;



};


NETWORKSERVICE_END_NAMESPACE

#endif // CENTRANCE_HTTP_SERVER_H_
